#ifndef COURSE_PUB_H
#define COURSE_PUB_H

#define MAX_COURSES 100
#define MAX_STUDENTS_PER_COURSE 100
#define MAX_NAME_LEN 50
#define MAX_ID_LEN 20
#define MAX_TYPE_LEN 20

typedef struct {
    char id[MAX_ID_LEN];                    // 课程编号
    char name[MAX_NAME_LEN];                // 课程名称
    char type[MAX_TYPE_LEN];                // 课程性质
    int hours;                              // 授课学时
    float credit;                           // 学分
    int current_enrollment;                 // 当前选课人数
    int max_enrollment;                     // 最大选课人数
    char students[MAX_STUDENTS_PER_COURSE][MAX_ID_LEN]; // 选课学生列表
} Course;

// 课程管理函数声明
void init_course_manager();
int add_course(const char* id, const char* name, const char* type, 
               int hours, float credit, int max_enrollment);
int delete_course(const char* id);
Course* find_course_by_id(const char* id);
Course* find_course_by_name(const char* name);
int update_course_info(const char* id, const char* new_name, 
                      const char* new_type, int new_hours, 
                      float new_credit, int new_max);
void list_all_courses();
int get_course_count();
int can_enroll(const char* course_id);
int enroll_student_in_course(const char* course_id, const char* student_id);
int remove_student_from_course(const char* course_id, const char* student_id);
Course* get_all_courses();

#endif
